অ্যাপাচি স্পার্ক (Apache Spark) একটি ডিস্ট্রিবিউটেড ডেটা প্রসেসিং ফ্রেমওয়ার্ক যা মেমরি-ভিত্তিক প্রসেসিংয়ের মাধ্যমে দ্রুত এবং স্কেলেবল ডেটা প্রক্রিয়া করতে সক্ষম। স্পার্ক ক্লাস্টার সেটআপ করার মাধ্যমে আপনি ডিস্ট্রিবিউটেড প্রসেসিংয়ের জন্য একাধিক নোডে কাজ করতে পারেন, যা বৃহৎ ডেটাসেট দ্রুত প্রক্রিয়া করতে সাহায্য করে।
YARN (Yet Another Resource Negotiator) হল Hadoop এর রিসোর্স ম্যানেজার যা ক্লাস্টারের রিসোর্স ম্যানেজমেন্ট এবং শিডিউলিংয়ের জন্য ব্যবহৃত হয়। স্পার্ককে YARN-এ চালানোর মাধ্যমে আপনি স্পার্ক অ্যাপ্লিকেশনকে Hadoop এর সাথে একীভূত করতে পারেন, যা ক্লাস্টার রিসোর্স ব্যবস্থাপনা এবং স্কেলেবিলিটি উন্নত করে।
এই টিউটোরিয়ালে আমরা Spark Cluster Setup এবং YARN Setup নিয়ে আলোচনা করব, যা স্পার্ক ক্লাস্টার তৈরি এবং YARN-এ স্পার্ক অ্যাপ্লিকেশন চালানোর জন্য প্রয়োজনীয় পদক্ষেপগুলি অন্তর্ভুক্ত করবে।
1. Spark Cluster Setup
স্পার্ক ক্লাস্টার সেটআপ করার জন্য, প্রথমে আপনাকে স্পার্ক ইনস্টল করতে হবে এবং তারপর একাধিক নোডে সেটআপ সম্পন্ন করতে হবে। স্পার্ক ক্লাস্টার সাধারণত দুটি মোডে চলতে পারে: Standalone Mode এবং Cluster Mode। এখানে আমরা Cluster Mode নিয়ে আলোচনা করব।
Step 1: Download and Install Apache Spark
- Download Apache Spark: স্পার্কের সর্বশেষ ভার্সন ডাউনলোড করতে Apache Spark Official Website থেকে ডাউনলোড করুন।
Extract Spark: ডাউনলোড করা ফাইলটি /opt বা আপনার পছন্দসই ডিরেক্টরিতে এক্সট্র্যাক্ট করুন।
tar -xvzf spark-<version>.tgz -C /opt/Set Environment Variables: স্পার্কের পরিবেশ চলাচলের জন্য SPARK_HOME এবং PATH পরিবেশ চলাচল সেট করুন।
export SPARK_HOME=/opt/spark-<version> export PATH=$SPARK_HOME/bin:$PATH
Step 2: Configure Spark for Cluster Mode
স্পার্কের কনফিগারেশন ফাইল spark-defaults.conf এবং spark-env.sh ফাইলের মাধ্যমে কনফিগার করা হয়।
Configure Spark Master and Worker: প্রথমে, স্পার্কের
spark-env.shফাইলে master এবং worker এর কনফিগারেশন করতে হবে। এই ফাইলটি $SPARK_HOME/conf/ ডিরেক্টরিতে রয়েছে।spark-env.sh Configuration Example:
export SPARK_MASTER_HOST='spark-master-node' export SPARK_WORKER_CORES=2 export SPARK_WORKER_MEMORY=2gStart Spark Master and Worker: স্পার্ক ক্লাস্টার শুরু করতে, প্রথমে স্পার্ক মাষ্টার এবং তারপর স্পার্ক ওয়ার্কার শুরু করতে হবে।
Start Spark Master:
$SPARK_HOME/sbin/start-master.shStart Spark Worker:
$SPARK_HOME/sbin/start-worker.sh spark://spark-master-node:7077
এখানে:
- spark-master-node হল স্পার্ক মাষ্টার নোডের হোস্টনেম বা IP।
- 7077 হল স্পার্ক ক্লাস্টারের ডিফল্ট পোর্ট নম্বর।
Step 3: Check the Cluster Status
স্পার্ক ক্লাস্টার সফলভাবে চলমান কিনা তা চেক করার জন্য, আপনি Spark Master Web UI দেখতে পারেন। এটি সাধারণত http://spark-master-node:8080 এ অ্যাক্সেস করা যায়।
2. YARN Setup for Apache Spark
YARN (Yet Another Resource Negotiator) হল Hadoop এর রিসোর্স ম্যানেজার যা ক্লাস্টারের রিসোর্স ব্যবস্থাপনা ও শিডিউলিংয়ের কাজ করে। স্পার্ক YARN-এ রান করার জন্য, YARN কনফিগারেশন এবং স্পার্কের YARN-এ ডিপ্লয়মেন্ট কনফিগারেশন করা প্রয়োজন।
Step 1: Install Hadoop and Configure YARN
- Download Hadoop: প্রথমে, Hadoop ইনস্টল করুন। Hadoop Official Website থেকে Hadoop ডাউনলোড করুন।
Extract Hadoop: ডাউনলোড করা Hadoop ফাইলটি নির্দিষ্ট ডিরেক্টরিতে এক্সট্র্যাক্ট করুন।
tar -xvzf hadoop-<version>.tgz -C /opt/Set Hadoop Environment Variables: Hadoop এর পরিবেশ চলাচলের জন্য HADOOP_HOME এবং PATH পরিবেশ চলাচল সেট করুন।
export HADOOP_HOME=/opt/hadoop-<version> export PATH=$HADOOP_HOME/bin:$PATHConfigure YARN ResourceManager: yarn-site.xml ফাইলের মাধ্যমে YARN কনফিগার করুন।
<configuration> <property> <name>yarn.resourcemanager.address</name> <value>localhost:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>localhost:8030</value> </property> </configuration>
Step 2: Configure Spark for YARN
স্পার্ককে YARN ক্লাস্টারে চালানোর জন্য, স্পার্কের কনফিগারেশন ফাইল spark-defaults.conf এবং spark-env.sh ফাইলে YARN কনফিগারেশন যোগ করতে হবে।
Configure
spark-defaults.conf: spark-defaults.conf ফাইলে YARN কনফিগারেশন সেট করুন:spark.master yarn spark.submit.deployMode clusterConfigure
spark-env.sh: spark-env.sh ফাইলে YARN কনফিগারেশন নির্ধারণ করুন।export SPARK_YARN_USER_ENV="HADOOP_CONF_DIR=/opt/hadoop-<version>/etc/hadoop" export SPARK_MASTER=yarn
Step 3: Submit Spark Jobs to YARN
স্পার্কের যেকোনো অ্যাপ্লিকেশন বা জব YARN এ চালানোর জন্য, spark-submit কমান্ড ব্যবহার করা হয়। উদাহরণস্বরূপ:
$SPARK_HOME/bin/spark-submit \
--class com.example.MySparkApp \
--master yarn \
--deploy-mode cluster \
--num-executors 3 \
--executor-memory 2G \
--executor-cores 2 \
my_spark_app.jar
এখানে:
- --master yarn: স্পার্ককে YARN ক্লাস্টারে রান করার জন্য নির্দেশ দেয়।
- --deploy-mode cluster: স্পার্ক অ্যাপ্লিকেশনটি ক্লাস্টার মোডে চালানোর জন্য ব্যবহৃত হয়।
- --num-executors: কতগুলি এক্সিকিউটর ব্যবহার করা হবে তা নির্ধারণ করে।
- --executor-memory: প্রতিটি এক্সিকিউটরের জন্য মেমরি বরাদ্দ করে।
- --executor-cores: প্রতিটি এক্সিকিউটরের জন্য কোর সংখ্যা নির্ধারণ করে।
Step 4: Monitoring Spark Jobs on YARN
YARN এর ResourceManager Web UI থেকে আপনি স্পার্ক জবগুলির স্ট্যাটাস এবং পারফরম্যান্স মনিটর করতে পারবেন। এটি সাধারণত http://localhost:8088 এ পাওয়া যায়।
Conclusion
স্পার্ক ক্লাস্টার এবং YARN সেটআপ করার মাধ্যমে আপনি একটি ডিস্ট্রিবিউটেড ডেটা প্রসেসিং সিস্টেম তৈরি করতে পারেন যা বৃহৎ ডেটাসেট দ্রুত প্রক্রিয়া করতে সক্ষম। Standalone Mode এবং Cluster Mode এর মাধ্যমে স্পার্ক ক্লাস্টার সেটআপ করা সম্ভব, যেখানে YARN ব্যবহৃত হয় রিসোর্স ম্যানেজমেন্ট এবং শিডিউলিংয়ের জন্য। স্পার্ক এবং YARN একত্রে ব্যবহারের মাধ্যমে আপনি আরও স্কেলেবল এবং দক্ষ ডেটা প্রসেসিং সিস্টেম তৈরি করতে পারবেন।
Read more